package com.study.七大原则.o1单一职责原则;

public class SingleResponsibility2 {

    public static void main(String[] args) {
        RoadVehicle roadVehicle = new RoadVehicle();
        roadVehicle.run("汽车");
        roadVehicle.run("摩托车");

        AirVehicle airVehicle = new AirVehicle();
        airVehicle.run("飞机");

        //汽车在公路上运行
        //摩托车在公路上运行
        //飞机在天空上运行
    }


    //方案2的分析
    //1、遵守了单一职责原则
    //2、但是这样做  改动很大，要将类分解，同时要修改客户端
    //3、改进：直接修改Vehicle类 ，改动的代码会比较少  =》方案3
    static class RoadVehicle {
        public void run(String vehicle) {
            System.out.println(vehicle + "在公路上运行");
        }
    }

    static class AirVehicle{
        public void run(String vehicle) {
            System.out.println(vehicle + "在天空上运行");
        }
    }

    class WaterVehicle{
         public void run(String vehicle)  {
                    System.out.println(vehicle + "在水中运行");
                }
    }
}
